﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Distrackting.DataLayer;
using System.Collections.Generic;
using System.Collections;

namespace Distrackting.BusinessLayer
{
    public class GerirAmbito
    {

        public static List<Ambito> getAmbitos()
        {
            try
            {
                return dataAmbito.getAmbitos().ToList();

            }
            catch (Exception) { throw new Exception("Não foi possível consultar a lista de âmbitos."); }
        }

        public void inserirAmbito(String descricao)
        {
            try
            {
                Ambito a = new Ambito();
                a.descricao = descricao;
                dataAmbito.createAmbito(a);
            }
            catch (Exception )
            {
                throw new Exception("Não foi possível inserir o âmbito.");
            }
        }

        public void apagarAmbito(Guid cod_ambito)
        {
            try
            {
                Ambito a = dataAmbito.getAmbito(cod_ambito);
                dataAmbito.deleteAmbito(a);
            }
            catch (Exception )
            {
                throw new Exception("Não foi possível remover o âmbito.");
            }
        }

        public Ambito getAmbito(Guid cod_ambito)
        {
            try { return dataAmbito.getAmbito(cod_ambito); }
            catch (Exception )
            {
                throw new Exception("Não foi possível aceder ao âmbito.");
            }
        }

        public Ambito getAmbitoByDescricao(String descricao)
        {
            try
            {
                Ambito amb = new Ambito();
                foreach (Ambito a in dataAmbito.getAmbitos().ToList())
                {
                    if (a.descricao == descricao) return a;
                }
                return amb;
            }
            catch (Exception)
            {
                throw new Exception("Não foi possível aceder ao âmbito pretendido.");
            }
        }

    }
}
